package hot100;

import java.util.*;

/**
 * @author aodre , QQ : 480029069
 * @date 2023/10/10 21:38
 */
public class lc118杨辉三角 {

    // 这个题 难度不大的
    /*
      1
      1 1
      1 2 1
      1 2 2 1
      1 3 4 3 1      这样构造杨辉三角， 会比较容易思考一些
     */
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> ans = new ArrayList<>();
        for (int i = 0; i < numRows; i++) {
            List<Integer> path = new ArrayList<>();
            for (int j = 0; j < i; j++) {
                if(j == 0 || j == i){
                    path.add(1);
                }else{
                    path.add(ans.get(i - 1).get(j) + ans.get(i - 1).get(j - 1));
                }
            }
            ans.add(path);
        }
        return ans;
    }


    // 杨辉三角II
    public static List<Integer> getRow(int rowIndex) {
        List<Integer> last = new ArrayList<>();
        for (int i = 0; i <= rowIndex; i++) {
            List<Integer> cur = new ArrayList<>();
            for (int j = 0; j <= i; j++) {
                if(j == 0 || j == i){
                    cur.add(1);
                }else{
                    cur.add(last.get(j) + last.get(j - 1));
                }
            }
            last = cur;
        }
        return last;
    }

    public static void main(String[] args) {
        List<Integer> row = getRow(1);
        System.out.println(row);
    }

}
